<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  
  <link rel="shortcut icon" href="../img/favicon.ico">
  <title>应用 Applications - Keras 中文文档</title>
  <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>

  <link rel="stylesheet" href="../css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
  
  <script>
    // Current page data
    var mkdocs_page_name = "\u5e94\u7528 Applications";
    var mkdocs_page_input_path = "applications.md";
    var mkdocs_page_url = "/zh/applications/";
  </script>
  
  <script src="../js/jquery-2.1.1.min.js" defer></script>
  <script src="../js/modernizr-2.8.3.min.js" defer></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
  <script>hljs.initHighlightingOnLoad();</script> 
  
  <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-61785484-1', 'keras.io');
      ga('send', 'pageview');
  </script>
  
</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
      <div class="wy-side-nav-search">
        <a href=".." class="icon icon-home"> Keras 中文文档</a>
        <div role="search">
  <form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" title="Type search term here" />
  </form>
</div>
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
	<ul class="current">
	  
          
            <li class="toctree-l1">
		
    <a class="" href="..">主页</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../why-use-keras/">为什么选择 Keras?</a>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">快速开始</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../getting-started/sequential-model-guide/">Sequential 顺序模型指引</a>
                </li>
                <li class="">
                    
    <a class="" href="../getting-started/functional-api-guide/">函数式 API 指引</a>
                </li>
                <li class="">
                    
    <a class="" href="../getting-started/faq/">FAQ 常见问题解答</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">模型</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../models/about-keras-models/">关于 Keras 模型</a>
                </li>
                <li class="">
                    
    <a class="" href="../models/sequential/">Sequential 顺序模型 API</a>
                </li>
                <li class="">
                    
    <a class="" href="../models/model/">函数式 API</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Layers</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../layers/about-keras-layers/">关于 Keras 网络层</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/core/">核心网络层</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/convolutional/">卷积层 Convolutional</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/pooling/">池化层 Pooling</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/local/">局部连接层 Locally-connected</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/recurrent/">循环层 Recurrent</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/embeddings/">嵌入层 Embedding</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/merge/">融合层 Merge</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/advanced-activations/">高级激活层 Advanced Activations</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/normalization/">标准化层 Normalization</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/noise/">噪声层 Noise</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/wrappers/">层封装器 wrappers</a>
                </li>
                <li class="">
                    
    <a class="" href="../layers/writing-your-own-keras-layers/">编写你自己的层</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">数据预处理</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../preprocessing/sequence/">序列预处理</a>
                </li>
                <li class="">
                    
    <a class="" href="../preprocessing/text/">文本预处理</a>
                </li>
                <li class="">
                    
    <a class="" href="../preprocessing/image/">图像预处理</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../losses/">损失函数 Losses</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../metrics/">评估标准 Metrics</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../optimizers/">优化器 Optimizers</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../activations/">激活函数 Activations</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../callbacks/">回调函数 Callbacks</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../datasets/">常用数据集 Datasets</a>
	    </li>
          
            <li class="toctree-l1 current">
		
    <a class="current" href="./">应用 Applications</a>
    <ul class="subnav">
            
    <li class="toctree-l2"><a href="#applications">应用 Applications</a></li>
    
        <ul>
        
            <li><a class="toctree-l3" href="#_1">可用的模型</a></li>
        
            <li><a class="toctree-l3" href="#_2">图像分类模型的使用示例</a></li>
        
        </ul>
    

    <li class="toctree-l2"><a href="#_3">模型概览</a></li>
    
        <ul>
        
            <li><a class="toctree-l3" href="#xception">Xception</a></li>
        
            <li><a class="toctree-l3" href="#vgg16_1">VGG16</a></li>
        
            <li><a class="toctree-l3" href="#vgg19_1">VGG19</a></li>
        
            <li><a class="toctree-l3" href="#resnet">ResNet</a></li>
        
            <li><a class="toctree-l3" href="#inceptionv3_2">InceptionV3</a></li>
        
            <li><a class="toctree-l3" href="#inceptionresnetv2">InceptionResNetV2</a></li>
        
            <li><a class="toctree-l3" href="#mobilenet">MobileNet</a></li>
        
            <li><a class="toctree-l3" href="#densenet">DenseNet</a></li>
        
            <li><a class="toctree-l3" href="#nasnet">NASNet</a></li>
        
            <li><a class="toctree-l3" href="#mobilenetv2">MobileNetV2</a></li>
        
        </ul>
    

    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../backend/">后端 Backend</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../initializers/">初始化 Initializers</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../regularizers/">正则化 Regularizers</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../constraints/">约束 Constraints</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../visualization/">可视化 Visualization</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../scikit-learn-api/">Scikit-learn API</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../utils/">工具</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../contributing/">贡献</a>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">经典样例</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../examples/addition_rnn/">Addition RNN</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/babi_rnn/">Baby RNN</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/babi_memnn/">Baby MemNN</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/cifar10_cnn/">CIFAR-10 CNN</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/cifar10_cnn_capsule/">CIFAR-10 CNN-Capsule</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/cifar10_cnn_tfaugment2d/">CIFAR-10 CNN with augmentation (TF)</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/cifar10_resnet/">CIFAR-10 ResNet</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/conv_filter_visualization/">Convolution filter visualization</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/image_ocr/">Image OCR</a>
                </li>
                <li class="">
                    
    <a class="" href="../examples/imdb_bidirectional_lstm/">Bidirectional LSTM</a>
                </li>
    </ul>
	    </li>
          
        </ul>
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="..">Keras 中文文档</a>
      </nav>

      
      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="..">Docs</a> &raquo;</li>
    
      
    
    <li>应用 Applications</li>
    <li class="wy-breadcrumbs-aside">
      
        <a href="https://github.com/keras-team/keras-docs-zh/edit/master/docs/applications.md"
          class="icon icon-github"> Edit on GitHub</a>
      
    </li>
  </ul>
  <hr/>
</div>
          <div role="main">
            <div class="section">
              
                <h1 id="applications">应用 Applications</h1>
<p>Keras 的应用模块（keras.applications）提供了带有预训练权值的深度学习模型，这些模型可以用来进行预测、特征提取和微调（fine-tuning）。</p>
<p>当你初始化一个预训练模型时，会自动下载权重到 <code>~/.keras/models/</code> 目录下。</p>
<h2 id="_1">可用的模型</h2>
<h3 id="imagenet">在 ImageNet 上预训练过的用于图像分类的模型：</h3>
<ul>
<li><a href="#xception">Xception</a></li>
<li><a href="#vgg16">VGG16</a></li>
<li><a href="#vgg19">VGG19</a></li>
<li><a href="#resnet">ResNet, ResNetV2, ResNeXt</a></li>
<li><a href="#inceptionv3">InceptionV3</a></li>
<li><a href="#inceptionresnetv2">InceptionResNetV2</a></li>
<li><a href="#mobilenet">MobileNet</a></li>
<li><a href="#mobilenetv2">MobileNetV2</a></li>
<li><a href="#densenet">DenseNet</a></li>
<li><a href="#nasnet">NASNet</a></li>
</ul>
<p>所有的这些架构都兼容所有的后端 (TensorFlow, Theano 和 CNTK)，并且会在实例化时，根据 Keras 配置文件<code>〜/.keras/keras.json</code> 中设置的图像数据格式构建模型。举个例子，如果你设置 <code>image_data_format=channels_last</code>，则加载的模型将按照 TensorFlow 的维度顺序来构造，即「高度-宽度-深度」（Height-Width-Depth）的顺序。</p>
<p>注意：</p>
<ul>
<li>对于 <code>Keras &lt; 2.2.0</code>，Xception 模型仅适用于 TensorFlow，因为它依赖于 <code>SeparableConvolution</code> 层。</li>
<li>对于 <code>Keras &lt; 2.1.5</code>，MobileNet 模型仅适用于 TensorFlow，因为它依赖于 <code>DepthwiseConvolution</code> 层。</li>
</ul>
<hr />
<h2 id="_2">图像分类模型的使用示例</h2>
<h3 id="resnet50-imagenet">使用 ResNet50 进行 ImageNet 分类</h3>
<pre><code class="python">from keras.applications.resnet50 import ResNet50
from keras.preprocessing import image
from keras.applications.resnet50 import preprocess_input, decode_predictions
import numpy as np

model = ResNet50(weights='imagenet')

img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

preds = model.predict(x)
# 将结果解码为元组列表 (class, description, probability)
# (一个列表代表批次中的一个样本）
print('Predicted:', decode_predictions(preds, top=3)[0])
# Predicted: [(u'n02504013', u'Indian_elephant', 0.82658225), (u'n01871265', u'tusker', 0.1122357), (u'n02504458', u'African_elephant', 0.061040461)]
</code></pre>

<h3 id="vgg16">使用 VGG16 提取特征</h3>
<pre><code class="python">from keras.applications.vgg16 import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
import numpy as np

model = VGG16(weights='imagenet', include_top=False)

img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

features = model.predict(x)
</code></pre>

<h3 id="vgg19">从VGG19 的任意中间层中抽取特征</h3>
<pre><code class="python">from keras.applications.vgg19 import VGG19
from keras.preprocessing import image
from keras.applications.vgg19 import preprocess_input
from keras.models import Model
import numpy as np

base_model = VGG19(weights='imagenet')
model = Model(inputs=base_model.input, outputs=base_model.get_layer('block4_pool').output)

img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

block4_pool_features = model.predict(x)
</code></pre>

<h3 id="inceptionv3">在新类上微调 InceptionV3</h3>
<pre><code class="python">from keras.applications.inception_v3 import InceptionV3
from keras.preprocessing import image
from keras.models import Model
from keras.layers import Dense, GlobalAveragePooling2D
from keras import backend as K

# 构建不带分类器的预训练模型
base_model = InceptionV3(weights='imagenet', include_top=False)

# 添加全局平均池化层
x = base_model.output
x = GlobalAveragePooling2D()(x)

# 添加一个全连接层
x = Dense(1024, activation='relu')(x)

# 添加一个分类器，假设我们有200个类
predictions = Dense(200, activation='softmax')(x)

# 构建我们需要训练的完整模型
model = Model(inputs=base_model.input, outputs=predictions)

# 首先，我们只训练顶部的几层（随机初始化的层）
# 锁住所有 InceptionV3 的卷积层
for layer in base_model.layers:
    layer.trainable = False

# 编译模型（一定要在锁层以后操作）
model.compile(optimizer='rmsprop', loss='categorical_crossentropy')

# 在新的数据集上训练几代
model.fit_generator(...)

# 现在顶层应该训练好了，让我们开始微调 Inception V3 的卷积层。
# 我们会锁住底下的几层，然后训练其余的顶层。

# 让我们看看每一层的名字和层号，看看我们应该锁多少层呢：
for i, layer in enumerate(base_model.layers):
   print(i, layer.name)

# 我们选择训练最上面的两个 Inception block
# 也就是说锁住前面249层，然后放开之后的层。
for layer in model.layers[:249]:
   layer.trainable = False
for layer in model.layers[249:]:
   layer.trainable = True

# 我们需要重新编译模型，才能使上面的修改生效
# 让我们设置一个很低的学习率，使用 SGD 来微调
from keras.optimizers import SGD
model.compile(optimizer=SGD(lr=0.0001, momentum=0.9), loss='categorical_crossentropy')

# 我们继续训练模型，这次我们训练最后两个 Inception block
# 和两个全连接层
model.fit_generator(...)
</code></pre>

<h3 id="inceptionv3_1">通过自定义输入张量构建 InceptionV3</h3>
<pre><code class="python">from keras.applications.inception_v3 import InceptionV3
from keras.layers import Input

# 这也可能是不同的 Keras 模型或层的输出
input_tensor = Input(shape=(224, 224, 3))  # 假定 K.image_data_format() == 'channels_last'

model = InceptionV3(input_tensor=input_tensor, weights='imagenet', include_top=True)
</code></pre>

<hr />
<h1 id="_3">模型概览</h1>
<table>
<thead>
<tr>
<th>模型</th>
<th align="right">大小</th>
<th align="right">Top-1 准确率</th>
<th align="right">Top-5 准确率</th>
<th align="right">参数数量</th>
<th align="right">深度</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#xception">Xception</a></td>
<td align="right">88 MB</td>
<td align="right">0.790</td>
<td align="right">0.945</td>
<td align="right">22,910,480</td>
<td align="right">126</td>
</tr>
<tr>
<td><a href="#vgg16">VGG16</a></td>
<td align="right">528 MB</td>
<td align="right">0.713</td>
<td align="right">0.901</td>
<td align="right">138,357,544</td>
<td align="right">23</td>
</tr>
<tr>
<td><a href="#vgg19">VGG19</a></td>
<td align="right">549 MB</td>
<td align="right">0.713</td>
<td align="right">0.900</td>
<td align="right">143,667,240</td>
<td align="right">26</td>
</tr>
<tr>
<td><a href="#resnet">ResNet50</a></td>
<td align="right">98 MB</td>
<td align="right">0.749</td>
<td align="right">0.921</td>
<td align="right">25,636,712</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#resnet">ResNet101</a></td>
<td align="right">171 MB</td>
<td align="right">0.764</td>
<td align="right">0.928</td>
<td align="right">44,707,176</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#resnet">ResNet152</a></td>
<td align="right">232 MB</td>
<td align="right">0.766</td>
<td align="right">0.931</td>
<td align="right">60,419,944</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#resnet">ResNet50V2</a></td>
<td align="right">98 MB</td>
<td align="right">0.760</td>
<td align="right">0.930</td>
<td align="right">25,613,800</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#resnet">ResNet101V2</a></td>
<td align="right">171 MB</td>
<td align="right">0.772</td>
<td align="right">0.938</td>
<td align="right">44,675,560</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#resnet">ResNet152V2</a></td>
<td align="right">232 MB</td>
<td align="right">0.780</td>
<td align="right">0.942</td>
<td align="right">60,380,648</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#resnet">ResNeXt50</a></td>
<td align="right">96 MB</td>
<td align="right">0.777</td>
<td align="right">0.938</td>
<td align="right">25,097,128</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#resnet">ResNeXt101</a></td>
<td align="right">170 MB</td>
<td align="right">0.787</td>
<td align="right">0.943</td>
<td align="right">44,315,560</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#inceptionv3">InceptionV3</a></td>
<td align="right">92 MB</td>
<td align="right">0.779</td>
<td align="right">0.937</td>
<td align="right">23,851,784</td>
<td align="right">159</td>
</tr>
<tr>
<td><a href="#inceptionresnetv2">InceptionResNetV2</a></td>
<td align="right">215 MB</td>
<td align="right">0.803</td>
<td align="right">0.953</td>
<td align="right">55,873,736</td>
<td align="right">572</td>
</tr>
<tr>
<td><a href="#mobilenet">MobileNet</a></td>
<td align="right">16 MB</td>
<td align="right">0.704</td>
<td align="right">0.895</td>
<td align="right">4,253,864</td>
<td align="right">88</td>
</tr>
<tr>
<td><a href="#mobilenetv2">MobileNetV2</a></td>
<td align="right">14 MB</td>
<td align="right">0.713</td>
<td align="right">0.901</td>
<td align="right">3,538,984</td>
<td align="right">88</td>
</tr>
<tr>
<td><a href="#densenet">DenseNet121</a></td>
<td align="right">33 MB</td>
<td align="right">0.750</td>
<td align="right">0.923</td>
<td align="right">8,062,504</td>
<td align="right">121</td>
</tr>
<tr>
<td><a href="#densenet">DenseNet169</a></td>
<td align="right">57 MB</td>
<td align="right">0.762</td>
<td align="right">0.932</td>
<td align="right">14,307,880</td>
<td align="right">169</td>
</tr>
<tr>
<td><a href="#densenet">DenseNet201</a></td>
<td align="right">80 MB</td>
<td align="right">0.773</td>
<td align="right">0.936</td>
<td align="right">20,242,984</td>
<td align="right">201</td>
</tr>
<tr>
<td><a href="#nasnet">NASNetMobile</a></td>
<td align="right">23 MB</td>
<td align="right">0.744</td>
<td align="right">0.919</td>
<td align="right">5,326,716</td>
<td align="right">-</td>
</tr>
<tr>
<td><a href="#nasnet">NASNetLarge</a></td>
<td align="right">343 MB</td>
<td align="right">0.825</td>
<td align="right">0.960</td>
<td align="right">88,949,818</td>
<td align="right">-</td>
</tr>
</tbody>
</table>
<p>Top-1 准确率和 Top-5 准确率都是在 ImageNet 验证集上的结果。</p>
<p>Depth 表示网络的拓扑深度。这包括激活层，批标准化层等。</p>
<hr />
<h2 id="xception">Xception</h2>
<pre><code class="python">keras.applications.xception.Xception(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
</code></pre>

<p>在 ImageNet 上预训练的 Xception V1 模型。</p>
<p>在 ImageNet 上，该模型取得了验证集 top1 0.790 和 top5 0.945 的准确率。</p>
<p>注意该模型只支持 <code>channels_last</code> 的维度顺序（高度、宽度、通道）。</p>
<p>模型默认输入尺寸是 299x299。</p>
<h3 id="_4">参数</h3>
<ul>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（即 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>input_shape</strong>: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效（否则输入形状必须是 <code>(299, 299, 3)</code>，因为预训练模型是以这个大小训练的）。它必须拥有 3 个输入通道，且宽高必须不小于 71。例如 <code>(150, 150, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个 4D 张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个 2D 张量。</li>
<li><code>'max'</code> 代表全局最大池化。</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_5">返回值</h3>
<p>一个 Keras <code>Model</code> 对象.</p>
<h3 id="_6">参考文献</h3>
<ul>
<li><a href="https://arxiv.org/abs/1610.02357">Xception: Deep Learning with Depthwise Separable Convolutions</a></li>
</ul>
<h3 id="license">License</h3>
<p>预训练权值由我们自己训练而来，基于 MIT license 发布。</p>
<hr />
<h2 id="vgg16_1">VGG16</h2>
<pre><code class="python">keras.applications.vgg16.VGG16(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
</code></pre>

<p>VGG16 模型，权值由 ImageNet 训练而来。</p>
<p>该模型可同时构建于 <code>channels_first</code> (通道，高度，宽度) 和 <code>channels_last</code> （高度，宽度，通道）两种输入维度顺序。</p>
<p>模型默认输入尺寸是 224x224。</p>
<h3 id="_7">参数</h3>
<ul>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（即 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>input_shape</strong>: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效，否则输入形状必须是 <code>(244, 244, 3)</code>（对于 <code>channels_last</code> 数据格式），或者 <code>(3, 244, 244)</code>（对于 <code>channels_first</code> 数据格式）。它必须拥有 3 个输入通道，且宽高必须不小于 32。例如 <code>(200, 200, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_8">返回值</h3>
<p>一个 Keras <code>Model</code> 对象。</p>
<h3 id="_9">参考文献</h3>
<ul>
<li><a href="https://arxiv.org/abs/1409.1556">Very Deep Convolutional Networks for Large-Scale Image Recognition</a>：如果在研究中使用了VGG，请引用该论文。</li>
</ul>
<h3 id="license_1">License</h3>
<p>预训练权值由 <a href="http://www.robots.ox.ac.uk/~vgg/research/very_deep/">VGG at Oxford</a> 发布的预训练权值移植而来，基于 <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License</a>。</p>
<hr />
<h2 id="vgg19_1">VGG19</h2>
<pre><code class="python">keras.applications.vgg19.VGG19(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
</code></pre>

<p>VGG19 模型，权值由 ImageNet 训练而来。</p>
<p>该模型可同时构建于 <code>channels_first</code> (通道，高度，宽度) 和 <code>channels_last</code>（高度，宽度，通道）两种输入维度顺序。</p>
<p>模型默认输入尺寸是 224x224。</p>
<h3 id="_10">参数</h3>
<ul>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（即 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>input_shape</strong>: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效，否则输入形状必须是 <code>(244, 244, 3)</code>（对于 <code>channels_last</code> 数据格式），或者 <code>(3, 244, 244)</code>（对于 <code>channels_first</code> 数据格式）。它必须拥有 3 个输入通道，且宽高必须不小于 32。例如 <code>(200, 200, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_11">返回值</h3>
<p>一个 Keras <code>Model</code> 对象。</p>
<h3 id="_12">参考文献</h3>
<ul>
<li><a href="https://arxiv.org/abs/1409.1556">Very Deep Convolutional Networks for Large-Scale Image Recognition</a>：如果在研究中使用了VGG，请引用该论文。</li>
</ul>
<h3 id="license_2">License</h3>
<p>预训练权值由 <a href="http://www.robots.ox.ac.uk/~vgg/research/very_deep/">VGG at Oxford</a> 发布的预训练权值移植而来，基于 <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License</a>。</p>
<hr />
<h2 id="resnet">ResNet</h2>
<pre><code class="python">keras.applications.resnet.ResNet50(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.resnet.ResNet101(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.resnet.ResNet152(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.resnet_v2.ResNet50V2(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.resnet_v2.ResNet101V2(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.resnet_v2.ResNet152V2(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.resnext.ResNeXt50(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.resnext.ResNeXt101(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
</code></pre>

<p>ResNet, ResNetV2, ResNeXt 模型，权值由 ImageNet 训练而来。</p>
<p>该模型可同时构建于 <code>channels_first</code> (通道，高度，宽度) 和 <code>channels_last</code>（高度，宽度，通道）两种输入维度顺序。</p>
<p>模型默认输入尺寸是 224x224。</p>
<h3 id="_13">参数</h3>
<ul>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（即 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>input_shape</strong>: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效，否则输入形状必须是 <code>(244, 244, 3)</code>（对于 <code>channels_last</code> 数据格式），或者 <code>(3, 244, 244)</code>（对于 <code>channels_first</code> 数据格式）。它必须拥有 3 个输入通道，且宽高必须不小于 32。例如 <code>(200, 200, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_14">返回值</h3>
<p>一个 Keras <code>Model</code> 对象。</p>
<h3 id="_15">参考文献</h3>
<ul>
<li><code>ResNet</code>: <a href="https://arxiv.org/abs/1512.03385">Deep Residual Learning for Image Recognition</a></li>
<li><code>ResNetV2</code>: <a href="https://arxiv.org/abs/1603.05027">Identity Mappings in Deep Residual Networks</a></li>
<li><code>ResNeXt</code>: <a href="https://arxiv.org/abs/1611.05431">Aggregated Residual Transformations for Deep Neural Networks</a></li>
</ul>
<h3 id="license_3">License</h3>
<p>预训练权值由以下提供：</p>
<ul>
<li><code>ResNet</code>: <a href="https://github.com/KaimingHe/deep-residual-networks">The original repository of Kaiming He</a> under the <a href="https://github.com/KaimingHe/deep-residual-networks/blob/master/LICENSE">MIT license</a>.</li>
<li><code>ResNetV2</code>: <a href="https://github.com/facebook/fb.resnet.torch">Facebook</a> under the <a href="https://github.com/facebook/fb.resnet.torch/blob/master/LICENSE">BSD license</a>.</li>
<li><code>ResNeXt</code>: <a href="https://github.com/facebookresearch/ResNeXt">Facebook AI Research</a> under the <a href="https://github.com/facebookresearch/ResNeXt/blob/master/LICENSE">BSD license</a>.</li>
</ul>
<hr />
<h2 id="inceptionv3_2">InceptionV3</h2>
<pre><code class="python">keras.applications.inception_v3.InceptionV3(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
</code></pre>

<p>Inception V3 模型，权值由 ImageNet 训练而来。</p>
<p>该模型可同时构建于 <code>channels_first</code> (通道，高度，宽度) 和 <code>channels_last</code>（高度，宽度，通道）两种输入维度顺序。</p>
<p>模型默认输入尺寸是 299x299。</p>
<h3 id="_16">参数</h3>
<ul>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（即 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>input_shape</strong>: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效，否则输入形状必须是 <code>(299, 299, 3)</code>（对于 <code>channels_last</code> 数据格式），或者 <code>(3, 299, 299)</code>（对于 <code>channels_first</code> 数据格式）。它必须拥有 3 个输入通道，且宽高必须不小于 139。例如 <code>(150, 150, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_17">返回值</h3>
<p>一个 Keras <code>Model</code> 对象。</p>
<h3 id="_18">参考文献</h3>
<ul>
<li><a href="http://arxiv.org/abs/1512.00567">Rethinking the Inception Architecture for Computer Vision</a></li>
</ul>
<h3 id="license_4">License</h3>
<p>预训练权值基于 <a href="https://github.com/tensorflow/models/blob/master/LICENSE">Apache License</a>。</p>
<hr />
<h2 id="inceptionresnetv2">InceptionResNetV2</h2>
<pre><code class="python">keras.applications.inception_resnet_v2.InceptionResNetV2(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
</code></pre>

<p>Inception-ResNet V2 模型，权值由 ImageNet 训练而来。</p>
<p>该模型可同时构建于 <code>channels_first</code> (通道，高度，宽度) 和 <code>channels_last</code>（高度，宽度，通道）两种输入维度顺序。</p>
<p>模型默认输入尺寸是 299x299。</p>
<h3 id="_19">参数</h3>
<ul>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（即 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>input_shape</strong>: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效，否则输入形状必须是 <code>(299, 299, 3)</code>（对于 <code>channels_last</code> 数据格式），或者 <code>(3, 299, 299)</code>（对于 <code>channels_first</code> 数据格式）。它必须拥有 3 个输入通道，且宽高必须不小于 139。例如 <code>(150, 150, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_20">返回值</h3>
<p>一个 Keras <code>Model</code> 对象。</p>
<h3 id="_21">参考文献</h3>
<ul>
<li><a href="https://arxiv.org/abs/1602.07261">Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning</a></li>
</ul>
<h3 id="license_5">License</h3>
<p>预训练权值基于 <a href="https://github.com/tensorflow/models/blob/master/LICENSE">Apache License</a>。</p>
<hr />
<h2 id="mobilenet">MobileNet</h2>
<pre><code class="python">keras.applications.mobilenet.MobileNet(input_shape=None, alpha=1.0, depth_multiplier=1, dropout=1e-3, include_top=True, weights='imagenet', input_tensor=None, pooling=None, classes=1000)
</code></pre>

<p>在 ImageNet 上预训练的 MobileNet 模型。</p>
<p>注意，该模型目前只支持 <code>channels_last</code> 的维度顺序（高度、宽度、通道）。</p>
<p>模型默认输入尺寸是 224x224。</p>
<h3 id="_22">参数</h3>
<ul>
<li><strong>input_shape</strong>: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效，否则输入形状必须是 <code>(224, 224, 3)</code>（<code>channels_last</code> 格式）或 <code>(3, 224, 224)</code>（<code>channels_first</code> 格式）。它必须为 3 个输入通道，且宽高必须不小于 32，比如 <code>(200, 200, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>alpha</strong>: 控制网络的宽度：<ul>
<li>如果 <code>alpha</code> &lt; 1.0，则同比例减少每层的滤波器个数。</li>
<li>如果 <code>alpha</code> &gt; 1.0，则同比例增加每层的滤波器个数。</li>
<li>如果 <code>alpha</code> = 1，使用论文默认的滤波器个数</li>
</ul>
</li>
<li><strong>depth_multiplier</strong>: depthwise卷积的深度乘子，也称为（分辨率乘子）</li>
<li><strong>dropout</strong>: dropout 概率</li>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（比如 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_23">返回</h3>
<p>一个 Keras <code>Model</code> 对象。</p>
<h3 id="_24">参考文献</h3>
<ul>
<li><a href="https://arxiv.org/pdf/1704.04861.pdf">MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications</a></li>
</ul>
<h3 id="license_6">License</h3>
<p>预训练权值基于 <a href="https://github.com/tensorflow/models/blob/master/LICENSE">Apache License</a>。</p>
<hr />
<h2 id="densenet">DenseNet</h2>
<pre><code class="python">keras.applications.densenet.DenseNet121(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.densenet.DenseNet169(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
keras.applications.densenet.DenseNet201(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
</code></pre>

<p>在 ImageNet 上预训练的 DenseNet 模型。</p>
<p>该模型可同时构建于 <code>channels_first</code> (通道，高度，宽度) 和 <code>channels_last</code>（高度，宽度，通道）两种输入维度顺序。</p>
<p>模型默认输入尺寸是 224x224。</p>
<h3 id="_25">参数</h3>
<ul>
<li><strong>blocks</strong>: 四个 Dense Layers 的 block 数量。</li>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（比如 <code>layers.Input()</code> 输出的 tensor）。</li>
<li>input_shape: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效（不然输入形状必须是 <code>(224, 224, 3)</code> （<code>channels_last</code> 格式）或 <code>(3, 224, 224)</code> （<code>channels_first</code> 格式），因为预训练模型是以这个大小训练的）。它必须为 3 个输入通道，且宽高必须不小于 32，比如 <code>(200, 200, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化.</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_26">返回</h3>
<p>一个 Keras <code>Model</code> 对象。</p>
<h3 id="_27">参考文献</h3>
<ul>
<li><a href="https://arxiv.org/abs/1608.06993">Densely Connected Convolutional Networks</a> (CVPR 2017 Best Paper Award)</li>
</ul>
<h3 id="licence">Licence</h3>
<p>预训练权值基于 <a href="https://github.com/liuzhuang13/DenseNet/blob/master/LICENSE">BSD 3-clause License</a>。</p>
<hr />
<h2 id="nasnet">NASNet</h2>
<pre><code class="python">keras.applications.nasnet.NASNetLarge(input_shape=None, include_top=True, weights='imagenet', input_tensor=None, pooling=None, classes=1000)
keras.applications.nasnet.NASNetMobile(input_shape=None, include_top=True, weights='imagenet', input_tensor=None, pooling=None, classes=1000)
</code></pre>

<p>在 ImageNet 上预训练的神经结构搜索网络模型（NASNet）。</p>
<p>NASNetLarge 模型默认的输入尺寸是 331x331，NASNetMobile 模型默认的输入尺寸是 224x224。</p>
<h3 id="_28">参数</h3>
<ul>
<li><strong>input_shape</strong>: 可选，输入尺寸元组，仅当 <code>include_top=False</code> 时有效，否则对于 NASNetMobile 模型来说，输入形状必须是 <code>(224, 224, 3)</code>（<code>channels_last</code> 格式）或 <code>(3, 224, 224)</code>（<code>channels_first</code> 格式），对于 NASNetLarge 来说，输入形状必须是 <code>(331, 331, 3)</code> （<code>channels_last</code> 格式）或 <code>(3, 331, 331)</code>（<code>channels_first</code> 格式）。它必须为 3 个输入通道，且宽高必须不小于 32，比如 <code>(200, 200, 3)</code> 是一个合法的输入尺寸。</li>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化， <code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（比如 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_29">返回</h3>
<p>一个 Keras <code>Model</code> 实例。</p>
<h3 id="_30">参考文献</h3>
<ul>
<li><a href="https://arxiv.org/abs/1707.07012">Learning Transferable Architectures for Scalable Image Recognition</a></li>
</ul>
<h3 id="license_7">License</h3>
<p>预训练权值基于 <a href="https://github.com/tensorflow/models/blob/master/LICENSE">Apache License</a>。</p>
<h2 id="mobilenetv2">MobileNetV2</h2>
<pre><code class="python">keras.applications.mobilenet_v2.MobileNetV2(input_shape=None, alpha=1.0, depth_multiplier=1, include_top=True, weights='imagenet', input_tensor=None, pooling=None, classes=1000)
</code></pre>

<p>在 ImageNet 上预训练的 MobileNetV2 模型。</p>
<p>请注意，该模型仅支持 <code>'channels_last'</code> 数据格式（高度，宽度，通道)。</p>
<p>模型默认输出尺寸为 224x224。</p>
<h3 id="_31">参数</h3>
<ul>
<li><strong>input_shape</strong>: optional shape tuple, to be specified if you would
    like to use a model with an input img resolution that is not
    (224, 224, 3).
    It should have exactly 3 inputs channels (224, 224, 3).
    You can also omit this option if you would like
    to infer input_shape from an input_tensor.
    If you choose to include both input_tensor and input_shape then
    input_shape will be used if they match, if the shapes
    do not match then we will throw an error.
    E.g. <code>(160, 160, 3)</code> would be one valid value.</li>
<li><strong>alpha</strong>: 控制网络的宽度。这在 MobileNetV2 论文中被称作宽度乘子。<ul>
<li>如果 <code>alpha</code> &lt; 1.0，则同比例减少每层的滤波器个数。</li>
<li>如果 <code>alpha</code> &gt; 1.0，则同比例增加每层的滤波器个数。</li>
<li>如果 <code>alpha</code> = 1，使用论文默认的滤波器个数。</li>
</ul>
</li>
<li><strong>depth_multiplier</strong>: depthwise 卷积的深度乘子，也称为（分辨率乘子）</li>
<li><strong>include_top</strong>: 是否包括顶层的全连接层。</li>
<li><strong>weights</strong>: <code>None</code> 代表随机初始化，<code>'imagenet'</code> 代表加载在 ImageNet 上预训练的权值。</li>
<li><strong>input_tensor</strong>: 可选，Keras tensor 作为模型的输入（即 <code>layers.Input()</code> 输出的 tensor）。</li>
<li><strong>pooling</strong>: 可选，当 <code>include_top</code> 为 <code>False</code> 时，该参数指定了特征提取时的池化方式。<ul>
<li><code>None</code> 代表不池化，直接输出最后一层卷积层的输出，该输出是一个四维张量。</li>
<li><code>'avg'</code> 代表全局平均池化（GlobalAveragePooling2D），相当于在最后一层卷积层后面再加一层全局平均池化层，输出是一个二维张量。</li>
<li><code>'max'</code> 代表全局最大池化</li>
</ul>
</li>
<li><strong>classes</strong>: 可选，图片分类的类别数，仅当 <code>include_top</code> 为 <code>True</code> 并且不加载预训练权值时可用。</li>
</ul>
<h3 id="_32">返回</h3>
<p>一个 Keras <code>model</code> 实例。</p>
<h3 id="_33">异常</h3>
<p><strong>ValueError</strong>: 如果 <code>weights</code> 参数非法，或非法的输入尺寸，或者当 weights='imagenet' 时，非法的 depth_multiplier, alpha, rows。</p>
<h3 id="_34">参考文献</h3>
<ul>
<li><a href="https://arxiv.org/abs/1801.04381">MobileNetV2: Inverted Residuals and Linear Bottlenecks</a></li>
</ul>
<h3 id="license_8">License</h3>
<p>预训练权值基于 <a href="https://github.com/tensorflow/models/blob/master/LICENSE">Apache License</a>.</p>
              
            </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="../backend/" class="btn btn-neutral float-right" title="后端 Backend">Next <span class="icon icon-circle-arrow-right"></span></a>
      
      
        <a href="../datasets/" class="btn btn-neutral" title="常用数据集 Datasets"><span class="icon icon-circle-arrow-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <!-- Copyright etc -->
    
  </div>

  Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
      
        </div>
      </div>

    </section>

  </div>

  <div class="rst-versions" role="note" style="cursor: pointer">
    <span class="rst-current-version" data-toggle="rst-current-version">
      
          <a href="https://github.com/keras-team/keras-docs-zh/" class="fa fa-github" style="float: left; color: #fcfcfc"> GitHub</a>
      
      
        <span><a href="../datasets/" style="color: #fcfcfc;">&laquo; Previous</a></span>
      
      
        <span style="margin-left: 15px"><a href="../backend/" style="color: #fcfcfc">Next &raquo;</a></span>
      
    </span>
</div>
    <script>var base_url = '..';</script>
    <script src="../js/theme.js" defer></script>
      <script src="../search/main.js" defer></script>

</body>
</html>
